CSS Grid 是一個二維排版佈局系統,我們可以同時運用橫向和垂直來組合排列。而 Flexbox 只能在橫向和垂直佈局中選擇一個來佈局,也就是所謂的一維排版佈局系統。
所以大部分教學都會建議: “ CSS Grid 用來做全頁的排版佈局,而 Flexbox 則用在較小的排版需求 “。
咋聽之下好像很對,但有些專家反而囑咐不要用這樣簡單的二分法。我們今天就來整理看看這些專家對 CSS Grid 和 Flexbox 的使用時機的見解。
Coyier:大部分日常使用情境都是一維的排列。我不希望有人認為因為是一維而必須採用 FLexbox,而在二維時才用 Grid。
Monus:事實上我們常常使用 Flexbox 建立二維佈局(基於其 warp 換行列能力),也會使用 Grid 建立一維佈局(由於其 auto-placement 自動放置能力)。
Maldonado:Flexbox 讓我們可以創建更具回應性和可維護性的網頁,而 Grid 確實可以建立更加複雜的佈局設計。我們的目標應該是同時使用它們:請使用 Grid 來做佈局;而使用 Flexbox 來進行元素對齊。
聽完專家們的意見陳述,我們把各造建議的使用時機整理如下述:
Flexbox 與 CSS Grid 的使用時機和情境確實沒有明確答案,多參考多做嘗試,始終思考是哪個方式更能體現我們的想法和目標。結合使用 Flexbox 和 CSS Grid 來解決複雜的排版佈局也是常態。